home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power Programmierung
/
Power-Programmierung (Tewi)(1994).iso
/
magazine
/
pctchnqs
/
1991
/
number6
/
pctctrl.rlz
< prev
next >
Wrap
Text File
|
1991-12-16
|
3KB
|
101 lines
'Server - Control app
RUN "StdArray"
'This procedure handles initiate requests
PROC HandleInit(Session,Message, App, Topic)
LOCAL NextApp
IF App = "PCTech" THEN
NextApp = FirstMatch(CurApps, 0)
'only allow maxapps apps to run at once
IF NOT NextApp THEN
IF DDENew(Session, App, Topic) THEN
DDEControl(_Data, "Command", "TooMany")
END IF
ELSE
IF DDENew(Session, App, Topic) THEN
CurApps[NextApp] = Session
FormSetColor(_Blue; _Text)
FormModifyObject(100 + NextApp, _SetColor)
DDESetProc(Controller)
'Set the title
DDEControl(_Data, "Title", Sprint("Walker P(0)", NextApp))
'If only session, start the man walking
IF Sum(CurApps <> 0) = 1 THEN
StartWalk(NextApp)
END IF
END IF
END IF
END IF
END PROC
'This handles messages sent from the other items
PROC Controller(Session, Message, Topic, Data)
LOCAL AppNum
AppNum = FirstMatch(CurApps, Session)
SELECT CASE Message
CASE _Close
FormSetColor(_Black; _Text)
FormModifyObject(100 + AppNum, _SetColor)
CurApps[AppNum] = 0
IF Walker = AppNum THEN
MoveWalker(AppNum)
END IF
CASE _Poke
IF Topic = "Command" and Data = "ManOut" THEN
FormSetColor(_Blue; _Text)
FormModifyObject(100 + AppNum, _SetColor)
MoveWalker(AppNum)
END IF
END SELECT
END PROC
PROC StartWalk(App)
FormSetColor(_Red; _Text)
FormModifyObject(100 + App, _SetColor)
Walker = App
DDESelect(CurApps[App])
DDEControl(_Data, "Command", "StartWalk")
END PROC
PROC MoveWalker(App)
LOCAL J, B
B = CurApps <> 0 'All active apps
'Find next active
J = FirstMatch(B, 1, App+1)
IF NOT J THEN
'Search from front
J = FirstMatch(B, 1)
END IF
IF J THEN 'switch to next walker
DDESelect(CurApps[J])
Walker = J
DDEControl(_Data, "Command", "StartWalk")
FormSetColor(_Red; _Text)
FormModifyObject(100 + J, _SetColor)
END IF
END PROC
PROC MakeForm
FontNew(1; "Helv", 18, _Bold)
FormNew(1; "Controller")
FormControl(_Size; _Center, _Center, 100 pct, 100 pct)
FormSetObject(101, _CaptionLeft, "1", 1, 10 pct, _Center)
FormSetObject(102, _CaptionLeft, "2", 1, 35 pct, _Center)
FormSetObject(103, _CaptionLeft, "3", 1, 60 pct, _Center)
FormSetObject(104, _CaptionLeft, "4", 1, 85 pct, _Center)
FormControl(_Show)
FontControl(_Close)
END PROC
MaxApps = 4
CurApps = Index(MaxApps)*0
Walker = 0
SetSys(_Size, {_Default, _Default, 50 pct, 30 pct})
MakeForm
DDESelect(-1)
DDESetProc(HandleInit)